package com.ym.pms.service;

import com.github.pagehelper.PageInfo;
import com.ym.pms.model.Suite;

public interface SuiteService {

    /**
     * 添加一个套房
     * @param suite 套房对象
     * @return 数据表中更改的行数
     */
    public int add(Suite suite);

    /**
     * 根据套房编号删除套房
     * @param suCoding 套房编号
     * @return 数据表中更改的行数
     */
    public int delete(String suCoding);

    /**
     * 根据套房编号确定更改对象，再根据Suite对象中已有的信息更改
     * @param suite 更新的套房内容对象
     * @return 数据表中更改的行数
     */
    public int update(Suite suite);

    /**
     * 根分页查询所有套房信息
     * @param pageNum 当前页码
     * @param pageSize 每页大小
     * @return pageInfo封装的List<Suite>
     */
    public PageInfo findAll(int pageNum,int pageSize);

    /**
     * 根据suCoding查询套房
     * @param suCoding 套房编码
     * @return 套房对象Suite
     */
    public Suite findByCoding(String suCoding);

    /**
     * 分页模糊查询
     * @param suite 查询关键字封装的Suite对象
     * @param pageNum 当前页码
     * @param pageSize 每页大小
     * @return pageInfo封装的List<Suite>
     */
    public PageInfo fuzzyQuery(Suite suite, int pageNum, int pageSize);

    /**
     * 分页获取全部以启用的套房
     * @return PageInfo封装的List<Suite>
     */
    PageInfo findByStartUsing(int pageNum, int pageSize);

    /**
     * 分页获取全部以启用且空置的套房
     * @return PageInfo封装的List<Suite>
     */
    PageInfo findByStartUsingAndVacant(int pageNum, int pageSize);

    /**
     * 获取当前套房表中最大的序号
     * @return 最大序号
     */
    int getMaxNo();

    /**
     * 获取套房编码
     * @return 生成的套房编码
     */
    String getCoding();

    void deleteAllByBuCoding(String s);
}
